package com.bdqn.carrental;

import com.bdqn.carrental.interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * ========================
 * Created with IntelliJ IDEA.
 * User：恒宇少年
 * Date：2017/4/7
 * Time：21:47
 * 码云：http://git.oschina.net/jnyqy
 * ========================
 */
@Configuration
public class MvcConfiguration extends WebMvcConfigurerAdapter
{
    /*---自定义静态资源文件路径,添加映射路径--
    SpringBoot默认给我们配置了静态资源的地址转发，
    只需要将静态文件放到/resources/static目录下，就可以直接访问了。
    但是这样往往会暴露给用户我们的项目结构，针对这一点我们需要修改静态资源的路径
    */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
    }
    //添加跳转页面映射逻辑视图名
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/user/index").setViewName("index");
        registry.addViewController("/user/login_view").setViewName("login");
        registry.addViewController("/user/gl-khgl-tc").setViewName("gl-khgl-tc");
    }
    /*自定义拦截器*/
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        /**
         * addPathPatterns用于添加拦截规则
         * excludePathPatterns用户排除拦截
         * addPathPatterns("/**")对所有请求都拦截，
         *  但是排除了/toLogin和/login和静态文件路径/example/**请求的拦截。
         */
        registry.addInterceptor(new MyInterceptor())
                .addPathPatterns("/**")
                .excludePathPatterns("/user/login","/user/login_view","/static/**");
    }
}
